package com.holly.unit.deform.api;

import com.alibaba.fastjson.JSONObject;
import com.holly.unit.db.api.pojo.page.PageResult;
import com.holly.unit.deform.api.pojo.auth.DesignFormAuthDTO;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 接口描述: 表单设计器字段权限表 API
 *
 * @author fxr
 * @version 1.0.0
 * @date 2022/4/2 10:05
 */
public interface DeformAuthApi<T> {


    /***
     * 工作流中字段权限控制
     * @param desformCode
     * @param taskId
     * @return
     */
    List<DesignFormAuthDTO> queryByTaskId(String desformCode, String taskId);


    /***
     * 查询表单按钮权限
     * @param desformCode 表单编码
     * @param account 用户
     * @return
     */
    JSONObject fetchButtonsAuth(String desformCode,String account);


    /***
     * 根据request中参数构建查询构建器分页查询
     * @param t
     * @param paramMap
     * @return
     */
    PageResult<T> page(T t, Map<String, String[]> paramMap);

    PageResult<T> pageWithPermissionTypeAndDesCode(T t, Map<String, String[]> paramMap,String permissionType,String desformCode);

    void delById(Serializable id);


}
